//
//  BKVideoMoveModel.h
//  BukaLive
//
//  Created by 曹飞 on 2017/12/9.
//  Copyright © 2017年 曹飞. All rights reserved.
//
//


/*
  rpc 4020
 
 
 当老师对视频进行整体布局时先发送id为0的rpc消息代表整体进行布局，整体布局后老师对所有视频进行重新设置type类型进行快照更新，发送快照id为videomain。
 当对视频拖出后，点击某个视频z轴改变后，需要发送id为0的消息，并且type为WidgetMain ，并把z轴顺序发送，此条消息需要发送快照id为videomain。布局的消息发送快照是为了覆盖视频z轴变化的快照，
 以免视频移动z轴改变后，重新布局，后进入的判断视频出错。
 当收到单个视频布局消息时（除了WidgetMain ），需要判断valid是否false，如果为false不处理
 视频移动快照id为videopos_id
 
 视频快照解析。先解析单个视频的消息，如果单个视频type为WidgetMain ，再到videomain里解析z轴消息
 */
#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger,VideoLayoutType) {
    LayoutTop       = 0, ///< 上布局
    WidgetMain      = 1,  ///< 拖出
    LayoutLeft      = 2,  ///< 左布局
    LayoutBottom    = 3, ///< 下布局
    LayoutCenter    = 4, ///< 中间布局
    LayoutFull      = 5, ///< 全屏
};

@interface BKVideoMoveModel : NSObject
@property (nonatomic,strong) NSString * ID; //流id为aid_vid
@property (nonatomic,assign) VideoLayoutType type; //视频移动类型
@property (nonatomic,assign) int x;
@property (nonatomic,assign) int y;
@property (nonatomic,assign) int width;
@property (nonatomic,assign) int height;
@property (nonatomic,assign) int pWidth; //白板区域的实际宽，用于等比例计算
@property (nonatomic,assign) int pHeight;
@property (nonatomic,assign) BOOL valid; //这条命令是否有效，如果已经在房间内，如果为false不处理此消息。如果是进入房间解析快照不解析此字段
@property (nonatomic,strong) NSString *zs; //z轴排序，map，key为id，value为z，从0开始，0代表置顶，当WidgetMain 时解析
@property (nonatomic,assign) int lastLayout; //同type，只用于恢复快照，每次发送id为0的消息时，需要把整体的布局写入，以便下次进入房间设置默认的布局方式
@end


@interface BKVideoNSModel : NSObject
@property (nonatomic,strong) NSString * ID;
@property (nonatomic,assign) int z;
@property (nonatomic,assign) int Type;
@end


//发送实体
//{"id":"0","lastLayout":0,"type":5,"zs":"[{\"id\":\"5320718_5320719\",\"z\":0}]"}
// 拖动全屏或者全屏层级
@interface BKVideoFull : NSObject
@property (nonatomic,strong) NSString * ID; //流id为aid_vid
@property (nonatomic,assign) VideoLayoutType type; //视频移动类型
@property (nonatomic,strong) NSString *zs; //z轴排序，map，key为id，value为z，从0开始，0代表置顶，当WidgetMain 时解析
@property (nonatomic,assign) int lastLayout;

-(BKVideoMoveModel*)toModel;
@end


//单个改变
//{"height":0,"id":"5320712_5320713","pHeight":1080,"pWidth":1920,"type":0,"valid":true,"width":0,"x":0,"y":0}
@interface BKVideoOne : NSObject
@property (nonatomic,strong) NSString * ID; //流id为aid_vid 0 整体，取ZS ，非0 就是单个的
@property (nonatomic,assign) VideoLayoutType type; //视频移动类型
@property (nonatomic,assign) int x;
@property (nonatomic,assign) int y;
@property (nonatomic,assign) int width;
@property (nonatomic,assign) int height;
@property (nonatomic,assign) int pWidth; //白板区域的实际宽，用于等比例计算
@property (nonatomic,assign) int pHeight;
@property (nonatomic,assign) BOOL valid; //这条命令是否有效，如果已经在房间内，如果为false不处理此消息。如果是进入房间解析快照不解析此字段

-(BKVideoMoveModel*)toModel;

@end




